/** @file oal_mdev.h
  *
  * @brief This file contains the oal mdev deines.
  *
  *  Copyright (C) 2024, Artosyn Technologies. ALL RIGHTS RESERVED.
  *
  *  This Information is proprietary to Artosyn Technologies and MAY NOT
  *  be copied by any method or incorporated into another program without
  *  the express written consent of Artosyn. This Information or any portion
  *  thereof remains the property of Artosyn. The Information contained herein
  *  is believed to be accurate and Artosyn assumes no responsibility or
  *  liability for its use in any way and conveys no license or title under
  *  any patent or copyright and makes no representation or warranty that this
  *  Information is free from patent or copyright infringement.
  *
***/
#ifndef _OLA_MDEV_H_
#define _OLA_MDEV_H_
#include <linux/kernel.h>
#include "oal_main.h"

/** Prefix of the oal mdev name
 *  Complete name is <prefix><handle_id>, such as ar_mdev0/ar_mdev1/...
 */
#define OAL_MDEV_NAME_PREFIX    "ar_mdev"

/**
 *  @brief Init the oal mdev and register the process func
 *
 *  @param handle       A pointer to driver_handle
 *
 *  @return    0 for success or failed otherwise.
 */
int oal_mdev_init(oal_handle *handle);

/**
 *  @brief Deinit the oal mdev
 *
 *  @param handle       A pointer to driver_handle
 *
 *  @return N/A
 */
void oal_mdev_deinit(oal_handle *handle);

/**
 *  @brief clean up m_devs
 *
 *  @param handle       A pointer to driver_handle
 *
 *  @return    N/A
 */
void
oal_mdev_clean_up(oal_handle *handle);

#endif /* _OLA_MDEV_H_ */